Decryption System and Method for Video Data

ABSTRACT

The disclosed embodiments relate to a system that processes video data. An exemplary embodiment of the system includes a module that initiates a channel search procedure on a transport stream, a module that determines an encryption level of a first channel in the transport stream based on a control bit within the transport stream, and a module that adds the first channel and its associated encryption level to a channel map.

FIELD OF THE INVENTION

This invention relates to the field of digital signal processing,including providing improved performance in systems that employ bothdecoding and decryption of video data.

BACKGROUND OF THE INVENTION

This section is intended to introduce the reader to various aspects ofart which may be related to various aspects of the present inventionwhich are described and/or claimed below. This discussion is believed tobe helpful in providing the reader with background information tofacilitate a better understanding of the various aspects of the presentinvention. Accordingly, it should be understood that these statementsare to be read in this light, and not as admissions of prior art.

In video processing and storage applications, digital video data istypically encoded to conform to the requirements of a known standard.One such widely adopted standard is the MPEG2 (Moving Pictures ExpertGroup) image encoding standard, hereinafter referred to as the “MPEGstandard”. The MPEG standard is comprised of a system encoding section(ISO/IEC 13818-1, 10 Jun. 1994) and a video encoding section (ISO/IEC13818-2, 20 Jan. 1995), hereinafter referred to as the “MPEG systemsstandard” and “MPEG video standard” respectively. Video data encoded tothe MPEG standard is in the form of a packetized datastream, whichtypically includes the data content of many program channels (analogousto channels 1-125 in cable TV, for example). The data content of premiumprogram channels such as HBO™, Cinemax™ and Showtime™, for example, isusually protected from unauthorized access by methods such as encryptionand scrambling. These methods may be used alone, repetitively, or incombination to provide a plurality of levels of protection.

In a decoder, access to the premium channels is typically governed by aconditional access system which manages user billing and controlsprogram descrambling and decryption based on user entitlement. Theconditional access system may determine whether access is authorized ina variety of ways. For example, authorization may be determined withinthe decoder from user entitlement information pre-programmed on aso-called “smart card”. Alternatively, authorization may be determinedat a remote location and implemented within the decoder using userentitlement information that is transmitted from the remote location, asin a cable television pay-per-view service. The entitlement informationtypically includes codes used to generate descrambling and decryptionkeys that are used for program descrambling and decryption. However, theentitlement information may instead include the keys themselves.

The processing of encrypted and non-encrypted program data and themanagement of associated encryption and scrambling codes for storage,billing and other applications presents a number of problems. One suchproblem relates to the fact that decryption of video data is typicallyhandled in a different hardware block than video/audio decoding. Thisresults in a potential timing mismatch between the two respectiveblocks, making it difficult to determine whether to decrypt a new streamof data before starting to decode that stream. A system and method ofimproving this potential timing mismatch and facilitating a smoothtransition to decoding a video stream is desirable. Hereinafter the term“encryption” encompasses scrambling functions to the extent that thefunctions are used to prevent unauthorized use.

SUMMARY OF THE INVENTION

The disclosed embodiments relate to a system that processes video data.An exemplary embodiment of the system includes a module that initiates achannel search procedure on a transport stream, a module that determinesan encryption level of a first channel in the transport stream based ona control bit within the transport stream, and a module that adds thefirst channel and its associated encryption level to a channel map.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings:

FIG. 1 is a block diagram of a video system in accordance with anexemplary embodiment of the present invention;

FIG. 2 is a flow diagram of a channel search operation in accordancewith an exemplary embodiment of the present invention; and

FIG. 3 is a flow diagram of a video display operation in accordance withan exemplary embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

One or more specific embodiments of the present invention will bedescribed below. In an effort to provide a concise description of theseembodiments, not all features of an actual implementation are describedin the specification. It should be appreciated that in the developmentof any such actual implementation, as in any engineering or designproject, numerous implementation-specific decisions may be made toachieve the developers' specific goals, such as compliance withsystem-related and business-related constraints, which may vary from oneimplementation to another. Moreover, it should be appreciated that sucha development effort might be complex and time consuming, but wouldnevertheless be a routine undertaking of design, fabrication, andmanufacture for those of ordinary skill having the benefit of thisdisclosure.

FIG. 1 is a block diagram of a video system in accordance with anexemplary embodiment of the present invention. The system is generallyreferred to by the reference number 10. The system 10 comprises a frontend unit 12, which may include a tuner, an input processor and the like.The specific functions and details of construction of the front unit 12are not an essential aspect of the present invention. Generally, thefront unit 12 is adapted to receive an input signal such as a broadcastsignal and to prepare that signal for further processing by theremaining components of the system 10.

Transport stream data is delivered by the front end unit 12 to a memorybus 14. The memory bus delivers a transport stream to an internal RAM16, a descrambler 18, and a transport stream demultiplexor (“TSD”) 20.In the exemplary embodiment illustrated in FIG. 1, the descrambler 18and the TSD 20 share the internal RAM 16. The sharing of the internalRAM 16 enables the descrambler 18 to decrypt video data before that datais presented to the TSD 20. This means that video data stored in theinternal RAM 16 would be decrypted before it is accessed by the TSD 20.In this manner, encrypted packet encoding stream (“PES”) data would notbe presented to the TSD 20 if the descrambler 18 is able to decode thatdata.

The descrambler 18 may be able to decrypt video data using scramblingbit information included in a transport stream packet and PES layer datapreviously provided by the front end unit 12. Those bits includedecryption information for encrypted video data. As set forth below,information determined during a typical channel search may be employedto optimize video and audio decoding in accordance with an exemplaryembodiment of the present invention. The system 10 may be adapted toperform a channel search upon initialization.

In the exemplary embodiment illustrated in FIG. 1, video data isdecrypted in the descrambler 18 using transport scrambling control bitsfrom a transport stream packet and PES scrambling control bits from PESpacket data. Examples of transport scrambling information and PESscrambling control information are set forth in the MPEG2 systemspecification, which is hereby incorporated by reference. Exemplarytransport scrambling information is referred to in table 2-2 of MPEG2system specification as transport_scrambling_control bits. Exemplary PESscrambling control information is referred to in table 2-17 (PES packet)of the MPEG2 system specification as PES_scrambling_control bits.

FIG. 2 is a flow diagram of a channel search operation in accordancewith an exemplary embodiment of the present invention. The process isgenerally referred to by the reference numeral 100. Those of ordinaryskill in the art will appreciate that the functionality illustrated inFIG. 2 may be implemented in a system such as the system 10 (FIG. 1) inthe form of hardware modules, software modules or some combinationthereof, depending on considerations relevant to specific design goals.If software modules are employed, the software modules may comprisecomputer-readable instructions stored on a tangible medium, such as in aRAM or ROM device.

In accordance with the exemplary process 100, a channel searchingprocedure is performed. During the channel search procedure, encryptedchannels are marked based on information contained in transportscrambling control bits received with the video signal. This informationis previously obtained from program specific information (“PSI”) duringthe making of a channel map, which may be performed as a part ofinitializing the system 10 (FIG. 1). Accordingly, that information isavailable for reuse during the channel search operation illustrated inFIG. 2.

At block 102, the exemplary channel search process 100 begins. At adecision block 104, a decision is made about whether the channel beingexamined is valid. If the channel is determined to be invalid, processflow continues to decision block 112, as illustrated in FIG. 2. Atdecision block 112, a determination is made as to whether the currentchannel number is greater than a predetermined maximum channel number.If the channel number is less than the predetermined maximum channelnumber, process flow continues at block 114, where the channel number isincremented. Thereafter, process flow continues with the incrementedchannel number at the decision block 104. If the result of the decisionblock 112 is that the channel is greater than the predetermined maximumchannel number, the process ends, as illustrated at block 116.

If, at the decision block 104, a channel is determined to be valid,process flow continues at decision block 106. At a decision block 106, adetermination is made regarding an encryption level of the channel beingevaluated. Specifically, the channel is evaluated for the presence ofcontrol bits in the form of transport scrambling control information. Ifthe channel employs transport control, the channel is marked as ascrambled channel at block 108. If, at decision block 106, the channelis determined to not employ transport scrambling control, block 108 isskipped and process flow continues at block 110. At block 110,information about the channel, including whether it is encrypted or not,is saved in a channel map in the system 10 (FIG. 1) for later access.Thereafter, process flow continues at decision block 112, where theprocess 100 is repeated for successive channels up to and including thepredetermined maximum channel number. After the channel corresponding tothe predetermined maximum channel number is processed, process flowends, as illustrated at block 116.

FIG. 3 is a flow diagram of a video play operation in accordance with anexemplary embodiment of the present invention. The process is generallyillustrated by the reference numeral 200. Those of ordinary skill in theart will appreciate that the functionality illustrated in FIG. 3 may beimplemented in a system such as the system 10 (FIG. 1) in the form ofhardware modules, software modules or some combination thereof,depending on considerations relevant to specific design goals. Ifsoftware modules are employed, the software modules may comprisecomputer-readable instructions stored on a tangible medium, such as in aRAM or ROM device.

The exemplary process illustrated in FIG. 3 may be followed, forexample, when a user of the system 10 (FIG. 1) changes a channel that isbeing displayed by the system. Playback of the channel may begin basedon decryption performed by the descrambler 18, for channels indicated tobe scrambled as a result of the process illustrated in FIG. 2. Ifchanges have occurred in encryption information in the transportscrambling control, or if decrypted PES information is not available,this condition may be reported to a higher software layer with a requestto update encryption information in the channel map.

When a play command is receive, transport scrambling control bitsassociated with the requested channel may be checked to see if they havechanged since last being updated. If the transport control bits havechanged, this condition may be reported to a higher software layer, asdescribed previously. As a result of this request, new encryption datamay be obtained for the specific channel before it is played.

In the exemplary embodiment illustrated in FIG. 3, PES scramblingcontrol information may be employed to determine if the descrambler 18(FIG. 1) is descrambling video correctly with the decryption informationthat is provided. It may be desirable to provide a number of trialsbefore deciding that the video information is not susceptible todecryption using the currently available decryption information. Forexample, three attempts may be made before deciding that data is notsusceptible to decryption. As explained below, a delay may be insertedbetween each of these trials to facilitate improved performance.

At block 202, the process begins. At a decision block 204, adetermination is made as to whether the channel for which playback hasbeen requested is marked as scrambled. The channel may have beendetermined to be scrambled and marked as such by execution of theprocess illustrated in FIG. 2. If the channel is scrambled, descrambler18 (FIG. 1) may be started, as illustrated at block 206. The descrambler18 will attempt to decrypt the video information using the encryptiondata previously obtained, as described above. After the descrambler isstarted at block 206, process flow continues at a decision block 216, asdescribed below.

If, as a result of the determination at the decision block 204, thechannel is not identified as scrambled, process flow continues to adecision block 210. At block 210, a decision is made as to whether thechannel employs transport scrambling control. If the channel employstransport scrambling control, it is marked as scrambled, as shown atblock 212. Process flow then continues to block 214, where the channelis reported to an upper level software layer as not being playable. Theupper layer software level may request updated encryption informationbefore the channel can be displayed. Thereafter, the process ends, asillustrated at block 222.

If, at decision block 210, the channel is determined to not employtransport scrambling control, process flow continues at decision block216, where a determination is made as to whether the channel employs PESscrambling control. If the channel does not employ PES scramblingcontrol, process flow continues at block 220, where the channel isdecoded and displayed. The process ends at block 222.

If the channel is determined to employ PES scrambling control at thedecision block 216, process flow continues to a decision block 218. Inan exemplary embodiment of the present invention, the decision block 216may be adapted to determine whether decryption information alreadystored in the internal RAM 16 (FIG. 1) is correctly decrypting videodata. If decryption data already stored in the internal RAM 16 (FIG. 1)works correctly, requested playback of the channel may begin sooner thanif new decryption information has to be obtained by accessing a highersoftware layer for an update to the decryption information stored in thechannel map.

At the decision block 218, a determination is made as to how manyunsuccessful attempts to decode video correctly with existing PESinformation have taken place so far. In block 218, the number ofunsuccessful passes is indicated as “N.” The value of “N” may bedetermined by a system design considerations to optimize delay inpresentation of a displayed image after playback is requested (forexample, when a user changes the channel on a television). If themaximum “N” number of unsuccessful passes has not been reached, processflow continues at block 208 where a delay is incurred. Based on inherentdelays in the operation of the descrambler 18 (FIG. 1), the delay may beprogrammed to be in the range of about 10 milliseconds to about 1second. Following the delay, the descrambler is started, as illustratedat block 209, using existing decryption information. Process flow thenreturns to block 216, where a decision is again made as to whether PESscrambling control information is being employed. As set forth above,this determination may include a determination of whether videoinformation is being decoded correctly with the existing PES decryptioninformation.

If, at the decision block 218, the maximum number of unsuccessful passesthrough the process 200 has been reached, the channel is reported asunplayable to an upper layer program, as illustrated at block 214.Updated decryption information may be obtained via the upper layerprogram prior to retrying playback of the video information. Thereafter,process flow ends at block 222.

While the invention may be susceptible to various modifications andalternative forms, specific embodiments have been shown by way ofexample in the drawings and will be described in detail herein. However,it should be understood that the invention is not intended to be limitedto the particular forms disclosed. Rather, the invention is to cover allmodifications, equivalents and alternatives falling within the spiritand scope of the invention as defined by the following appended claims.

1. A system, comprising: a module adapted to initiate a channel searchprocedure on a transport stream; a module adapted to determine anencryption level of a first channel in the transport stream based on acontrol bit within the transport stream; and a module adapted to add thefirst channel and its associated encryption level to a channel map. 2.The system recited in claim 1, wherein the control bit comprises atleast a portion of transport scrambling control information associatedwith the first channel.
 3. The system recited in claim 1, comprising amodule adapted to start a descrambler to process the first channel ifthe associated encryption level indicates that the first channel isencrypted.
 4. The system recited in claim 1, comprising a module adaptedto mark the first channel as an encrypted channel if the associatedencryption level indicates that the first channel is encrypted.
 5. Thesystem recited in claim 1, comprising a module adapted to determine ifthe first channel is a valid channel.
 6. The system recited in claim 1,comprising a module adapted to determine if the first channel isassociated with packet encoding stream (“PES”) data.
 7. The systemrecited in claim 6, wherein the module adapted to determine if the firstchannel is associated with PES data is further adapted to determine ifthe first channel is being correctly decoded.
 8. The system recited inclaim 6, comprising: a module adapted to delay for a predetermined timeif the first channel is associated with PES data; and a module adaptedto determine if the first channel is being correctly decoded followingthe delay.
 9. The system recited in claim 6, comprising a module adaptedto decode the first channel if the first channel is not associated withPES data.
 10. A method, comprising: initiating a channel searchprocedure on a transport stream; determining an encryption level of afirst channel in the transport stream based on a control bit within thetransport stream; and adding the first channel and its associatedencryption level to a channel map.
 11. The method recited in claim 10,comprising starting a descrambler to process the first channel if theassociated encryption level indicates that the first channel isencrypted.
 12. The method recited in claim 10, comprising marking thefirst channel as an encrypted channel if the associated encryption levelindicates that the first channel is encrypted.
 13. The method recited inclaim 10, comprising determining if the first channel is associated withpacket encoding stream (“PES”) data.
 14. The method recited in claim 13,comprising: delaying for a predetermined time if the first channel isassociated with PES data; and determining if the first channel is beingcorrectly decoded following the delay.
 15. The method recited in claim13, comprising decoding the first channel if the first channel is notassociated with PES data.
 16. A tangible machine-readable medium,comprising: code adapted to initiate a channel search procedure on atransport stream; code adapted to determine an encryption level of afirst channel in the transport stream based on a control bit within thetransport stream; and code adapted to add the first channel and itsassociated encryption level to a channel map.
 17. The tangiblemachine-readable medium recited in claim 16, comprising code adapted tostart a descrambler to process the first channel if the associatedencryption level indicates that the first channel is encrypted.
 18. Thetangible machine-readable medium recited in claim 16, comprising codeadapted to descramble the first channel if the associated encryptionlevel indicates that the first channel is encrypted.
 19. The tangiblemachine-readable medium recited in claim 16, comprising code adapted tomark the first channel as an encrypted channel if the associatedencryption level indicates that the first channel is encrypted.
 20. Thetangible machine-readable medium recited in claim 16, comprising codeadapted to determine if the first channel is associated with packetencoding stream data.